/* 
给你一个 32 位的有符号整数 x ，返回将 x 中的数字部分反转后的结果。
如果反转后整数超过 32 位的有符号整数的范围 [−2^31,  2^31 − 1] ，就返回 0。
假设环境不允许存储 64 位整数（有符号或无符号）。
https://leetcode-cn.com/problems/reverse-integer/
*/

/**
 * @param {number} x
 * @return {number}
var reverse = function(x) {
  if (Math.abs(x) < 10) return x;
  let maxNum =  Math.pow(2, 31), resNum = 0
  // 判断是否是负数
  const isNeg = x < 0
  x = Math.abs(x)
  x = x.toString().split('').reverse().join('')
  resNum = parseInt(x, 10)
  resNum = isNeg ? -1 * resNum : resNum
  if (resNum <= maxNum * -1 || resNum >= maxNum) return 0;
  return resNum
};
*/

var reverse = function(x) {
  const absNum = x < 0 ? -1 * x : x
  if (absNum < 10) return x
  const tempStr = absNum.toString().split("").reverse().join("") * 1
  if (tempStr > Math.pow(2, 31)) return 0
  return x < 0 ? tempStr * -1 : tempStr
};

console.log(reverse(123))